<?php

declare(strict_types=1);

/**
 * @Author:     Frank
 * @contact     frank_hhm@163.com
 * @Date:       2022-12-09 13:34:36
 * @Last Modified time: 2022-12-17 11:01:32
 */

namespace app\common\model\store;

use frank\base\BaseModel;
use frank\traits\ModelTrait;
use app\common\enum\EnumFactory;

use app\common\model\store\ShippingRegionsModel;
use app\common\model\store\ShippingFreeModel;
/**
 * 商城-运费模版
 * Class ShippingTemplatesModel
 * @package app\common\model\store
 */
class ShippingTemplatesModel extends BaseModel
{
    use ModelTrait;

    /**
     * 数据表主键
     */
    protected $pk = 'id';

    /**
     * 模型名称
     */
    protected $name = 'store_shipping_temlpates';

    /**
     * 关联物流模板配送区域
     */
    public function citys()
    {
        return $this->hasMany(ShippingRegionsModel::class,'temp_id','id');
    }

    /**
     * 关联物流模板 免邮城市
     */
    public function freeCitys()
    {
        return $this->hasMany(ShippingFreeModel::class,'temp_id','id');
    }

    /**
     * 计费方式修改器
     */
    public function getTypeAttr($value)
    {
        return EnumFactory::instance('store.shipping.type')->getItem($value);
    }

    /**
     * id搜索器
     */
    public function searchIdAttr($query, $value)
    {
        if (is_array($value)) {
            $query->whereIn('id', $value);
        } else {
            $query->where('id', $value);
        }
    }
}